import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;

/**
 * 线程池
 */
public class Main {

    public static void main(String[] args) throws IOException {

        //Executors可以返回多种pool，但实际上，本质是返回的ThreadPoolExecutor。如果我们需要自己定制化参数时，可以直接new ThreadPoolExecutor
        Executor executor = Executors.newFixedThreadPool(100);//返回固定线程数的executor

        ServerSocket serverSocket = new ServerSocket(80);

        while (true){
            Socket socket = serverSocket.accept();//阻塞等待
            Runnable task = new Runnable() {
                @Override
                public void run() {
                    handleRequest(socket);
                }
            };

            //交给executor执行即可
            executor.execute(task);
        }



    }

    private static void handleRequest(Socket socket) {
    }
}
/**
 * java中给我们提供了一套框架，让我们控制线程的数量、执行的任务等一系列问题。
 * Executor 框架   是个线程池
 * Executor是个接口 ，ExecutorService是Executor的子类
 *
 */